package com.kuang.service;

import com.kuang.pojo.Blog;
import com.kuang.pojo.VoBlog;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface BlogService {

    public List<Blog> selectAllBlog();

    public int insertBlog(Blog blog);

    public Blog selectBlogId();

    public int deleteblog(Integer blogid);

    public Blog selectBlogById(Integer blogid);

    public int countBlog();

    public List<Blog> selectBlogRecommend();


    public List<Blog> selectAllSiteIndexBlog();

    public int countBlogPublished();

    public int updateBlogById(Blog blog);


    public List<VoBlog> selectAllBlogCountGroupTypeId();

    public List<Blog> selectAllBlogByTypeId(Integer typeid);

    //    后台模块的分类删除，因为分类删除了对应的博客记录，
//    public int deleteByTypeId(Integer typeid);

    public int updateBlogTypeIdByTypeId(Integer typeid);

    //     通过中间表提供的博客id查出 对应的所有博客对象
    public Blog selectAllBlogByMiddleBlogId(Integer blogid);

    // 查出博客的年月分按照年月分组
    public List<String> selectGroupYearMonth();

    //     按照博客的分组的年月进行查找
    public List<Blog> selectBlogByYear(String year);

    public List<Blog> selectPageSiteIndexBlog(Integer pageindex, Integer pagesize);

    //    查询发布状态 并且按照创建时间降序的博客 并且 按照关键字模糊查询
    public List<Blog> selectPageSiteIndexBlogSearch( Integer pageindex,  Integer pagesize,  String keywords,  Integer typeid);

    //    查询上面方法 查询记录的总行数
    public int selectPageSiteIndexBlogSearchCount(@Param("pageindex") Integer pageindex, @Param("pagesize") Integer pagesize, @Param("keywords") String keywords, @Param("typeid") Integer typeid);

    public int updateBlogViews(Integer blogid);

    // 用于 后台评论的查询  为了查出博客的标题
    public List<Blog> selectBlogByBlogId(Integer blogid);

}

